package com.study.netty.demo1.yqzl;

import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * @author wuxj
 * @date 2020/7/16 16:09
 */
@Getter
@Setter
public class Query {

    /**
     * 交易日期
     */
    private String day;

    /**
     * 交易时间
     */
    private String time;

    /**
     * 币种
     */
    private String currency;

    /**
     * 会计流水
     */
    private String accounting;

    /**
     * 借贷标记
     */
    private String loanMark;

    /**
     * 交易金额
     */
    private String amount;

    /**
     * 对方账号
     */
    private String counterpartAccount;

    /**
     * 对方账户名
     */
    private String counterpartAccountName;

    /**
     * 对方开户行
     */
    private String counterpartAccountBnak;

    /**
     * 账户余额
     */
    private String balance;

    /**
     * 摘要
     */
    private String summary;

    /**
     * 附言
     */
    private String postscript;

    /**
     * 凭证种类
     */
    private String certificateType;

    /**
     * 企业端流水号
     */
    private String serialNumber;

    /**
     * 备注1
     */
    private String remark1;

    /**
     * 备注2
     */
    private String remark2;

    /**
     * 备注3
     */
    private String remark3;

    public void parsing(String message) {
        if (StringUtils.isNotBlank(message) && message.contains("@@@@")) {
            String str = message.split("@@@@")[0];
            if (StringUtils.isNotBlank(str)) {
                String[] strs = str.split("#");
                if (ArrayUtils.isNotEmpty(strs) && strs.length == 5) {
                    //返回编号
                    String response_code = strs[0];
                    //查询账号
                    String acctNo = strs[1];
                    //返回明细记录数
                    String rec = strs[2];
                    //返回明细记录
                    String cyc_str = strs[3];

                    System.out.println(response_code);
                    System.out.println(acctNo);
                    System.out.println(rec);
                    System.out.println(cyc_str);
                }
            }
        }
    }

    @Override
    public String toString() {
        return StringEscapeUtils.unescapeJava(ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE));
    }
}
